Skip to content

test: verify urllib GET without timeout fails on main kernel#107

Closed
danbugs wants to merge 1 commit into
mainfrom
test/verify-no-timeout-fails-on-main
Closed

test: verify urllib GET without timeout fails on main kernel#107
danbugs wants to merge 1 commit into
mainfrom
test/verify-no-timeout-fails-on-main

Conversation

@danbugs

@danbugs danbugs commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Adds the same urllib_get_no_timeout.py test from #106 but against main's kernel (no idle-poll fix). Expected to fail — verifies the regression exists on main.

Do not merge — verification-only branch, will be closed after CI runs.

Signed-off-by: danbugs <danilochiarlone@gmail.com>
Copilot AI review requested due to automatic review settings July 1, 2026 01:14

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Python networking regression test that performs an urllib.request.urlopen() HTTP GET without passing an explicit timeout, and wires it into the examples CI so the behavior on mainline kernels can be observed (intended to reproduce the hang/regression described in #106).

Changes:

  • Add examples/networking-py/urllib_get_no_timeout.py (urllib GET without timeout=).
  • Include the new script in the networking-py initrd build (examples/networking-py/Dockerfile).
  • Add the new script to the Linux + Windows examples CI matrices (.github/workflows/test-examples.yml).

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
examples/networking-py/urllib_get_no_timeout.py New urllib-based HTTP GET script that omits timeout= to exercise the problematic no-timeout path.
examples/networking-py/Dockerfile Copies the new script into the initrd so it can be executed in the guest.
.github/workflows/test-examples.yml Runs the new script in the examples test matrix on both Linux and Windows runners.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +226 to +228
- example: networking-py
args: "--net -- /urllib_get_no_timeout.py"
expect: "SUCCESS: urllib GET \\(no timeout\\) worked!"
Comment on lines +619 to +621
- example: networking-py
args: "--net -- /urllib_get_no_timeout.py"
expect: "SUCCESS: urllib GET \\(no timeout\\) worked!"
Comment on lines +4 to +6
This exercises the code path used by mxc, where the Unikraft guest
kernel relies on the idle thread's halt_irq callback to poll sockets
via __hl_sleep rather than an explicit timeout-driven poll cycle.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Linux Benchmarks

Details
Benchmark suite Current: fcd363c Previous: 682ad20 Ratio
hello_world (median) 20 ms 20 ms 1
pandas (median) 110 ms 120 ms 0.92
density (per VM) 8 MB 8 MB 1
snapshot (disk) 653 MiB 653 MiB 1

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Windows Benchmarks

Details
Benchmark suite Current: fcd363c Previous: 682ad20 Ratio
hello_world (median) 333 ms 291 ms 1.14
pandas (median) 960 ms 1024 ms 0.94
density (per VM) 7 MB 7 MB 1
snapshot (disk) 661 MiB 661 MiB 1

This comment was automatically generated by workflow using github-action-benchmark.

@danbugs danbugs closed this Jul 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants